17784
22890
Odpowiedzi na to pytanie są wysiłkiem społeczności. Edytuj istniejące odpowiedzi, aby ulepszyć ten post. Obecnie nie przyjmuje nowych odpowiedzi ani interakcji.
Napisałem niewłaściwą rzecz w komunikacie zatwierdzenia.
Jak mogę zmienić wiadomość? Zatwierdzenie nie zostało jeszcze przesłane. 
Zmiana ostatniego komunikatu o zatwierdzeniu
git commit --amend
otworzy twój edytor, umożliwiając zmianę komunikatu o ostatnim zatwierdzeniu. Dodatkowo możesz ustawić komunikat o zatwierdzeniu bezpośrednio w linii poleceń za pomocą:
git commit --amend -m "Nowa wiadomość dotycząca zatwierdzenia"
… Jednakże może to sprawić, że wielowierszowe komunikaty o zatwierdzeniach lub małe poprawki będą trudniejsze do wprowadzenia.
Upewnij się, że nie masz żadnych zmian w kopii roboczej przed wykonaniem tej czynności, w przeciwnym razie zostaną one zatwierdzone. (Zmiany niestacjonarne nie zostaną zatwierdzone).
Zmiana wiadomości zatwierdzenia, które zostało już wysłane do zdalnej gałęzi
Jeśli już wypchnąłeś swoje zatwierdzenie do zdalnej gałęzi, to - po lokalnej zmianie zatwierdzenia (jak opisano powyżej) - będziesz musiał również wymusić wypchnięcie zatwierdzenia za pomocą:
git push   --force
# Lub
git push   -f
Ostrzeżenie: wymuszone wypychanie nadpisze gałąź zdalną stanem gałęzi lokalnej. Jeśli w oddziale zdalnym są zatwierdzenia, których nie masz w oddziale lokalnym, utracisz te zatwierdzenia.
Ostrzeżenie: bądź ostrożny przy zmienianiu zatwierdzeń, które już udostępniłeś innym osobom. Zmiana zatwierdzeń zasadniczo przepisuje je tak, aby miały różne identyfikatory SHA, co stwarza problem, jeśli inni ludzie mają kopie starego zatwierdzenia, które przepisałeś. Każdy, kto ma kopię starego zatwierdzenia, będzie musiał zsynchronizować swoją pracę z nowo napisanym zatwierdzeniem, co czasami może być trudne, więc upewnij się, że koordynujesz z innymi podczas próby przepisania wspólnej historii zatwierdzeń lub po prostu unikaj przepisywania wspólnych zatwierdzeń całkowicie.
Wykonaj interaktywną rebase
Inną opcją jest użycie interaktywnego rebase.
Pozwala to edytować dowolną wiadomość, którą chcesz zaktualizować, nawet jeśli nie jest to najnowsza wiadomość.
Aby wykonać Git squash, wykonaj następujące kroki:
// n to liczba zatwierdzeń do ostatniego zatwierdzenia, które chcesz móc edytować
git rebase -i HEAD ~ n
Gdy już zgniotłeś swoje zatwierdzenia - wybierz e / r do edycji wiadomości:
Ważna uwaga na temat interaktywnego rebase
Kiedy używasz git rebase -i HEAD ~ n może być więcej niż n zatwierdzeń. Git „zbierze” wszystkie zatwierdzenia w ostatnich n zatwierdzeniach, a jeśli gdzieś pomiędzy tym zakresem nastąpiło scalenie, zobaczysz również wszystkie zatwierdzenia, więc wynikiem będzie n +.
Dobra wskazówka:
Jeśli musisz to zrobić dla więcej niż jednej gałęzi i możesz napotkać konflikty podczas zmiany treści, skonfiguruj git rerere i pozwól Gitowi automatycznie rozwiązać te konflikty za Ciebie.
Dokumentacja
git-commit (1) Strona podręcznika
git-rebase (1) Strona podręcznika
git-push (1) Strona podręcznika
|
git commit --amend -m "twoja nowa wiadomość"
|
Jeśli zatwierdzenie, które chcesz naprawić, nie jest najnowszym:
git rebase --interactive $ parent_of_flawed_commit
Jeśli chcesz naprawić kilka błędnych zatwierdzeń, podaj rodzica najstarszego z nich.
Pojawi się edytor z listą wszystkich zatwierdzeń od tego, który podałeś.
Zmień wybór na przeredagowanie (lub w starszych wersjach Gita do edycji) przed wszystkimi zatwierdzeniami, które chcesz naprawić.
Po zapisaniu Git odtworzy wymienione zmiany.
Po każdym zatwierdzeniu, które chcesz przeredagować, Git przeniesie Cię z powrotem do edytora. Dla każdego zatwierdzenia, które chcesz edytować, Git przenosi cię do powłoki. Jeśli jesteś w powłoce:
Zmień zatwierdzenie w dowolny sposób.
git commit --amend
git rebase --continue
Większość tej sekwencji zostanie wyjaśniona na podstawie wyników różnych poleceń w trakcie. To jest bardzo łatwe; nie musisz tego zapamiętywać - pamiętaj tylko, że git rebase --interactive pozwala korygować zmiany bez względu na to, jak dawno były.
Zauważ, że nie będziesz chciał zmieniać zatwierdzeń, które już wypchnąłeś. A może tak, ale w takim przypadku będziesz musiał bardzo uważać, aby komunikować się ze wszystkimi, którzy mogli wyciągnąć twoje zobowiązania i wykonać na nich pracę. Jak mogę odzyskać / ponownie zsynchronizować po tym, jak ktoś wypchnie rebase lub reset do opublikowanej gałęzi?
|
Aby zmienić poprzednie zatwierdzenie, wprowadź żądane zmiany i przeprowadź te zmiany, a następnie uruchom
git commit --amend
Spowoduje to otwarcie w edytorze tekstu pliku reprezentującego nowy komunikat dotyczący zmiany. Zaczyna się od wypełnienia tekstem ze starego komunikatu o zmianach. Zmień treść komentarza, jak chcesz, a następnie zapisz plik i zamknij edytor, aby zakończyć.
Aby zmienić poprzednie zatwierdzenie i zachować ten sam komunikat dziennika, uruchom
git commit --amend -C HEAD
Aby naprawić poprzednie zatwierdzenie, usuwając je całkowicie, uruchom
reset git - hard HEAD ^
Jeśli chcesz edytować więcej niż jeden komunikat dotyczący zatwierdzenia, uruchom
git rebase -i HEAD ~ commit_count
(Zastąp liczbę zatwierdzeń liczbą zatwierdzeń, które chcesz edytować). To polecenie uruchamia Twój edytor. Zaznacz pierwsze zatwierdzenie (to, które chcesz zmienić) jako „edytuj” zamiast „wybierz”, a następnie zapisz i zamknij edytor. Wprowadź zmianę, którą chcesz zatwierdzić, a następnie uruchom
git commit --amend
git rebase --continue
Uwaga: Możesz także „wprowadzić żądaną zmianę” z edytora otwartego przez git commit --amend
|
Jak jużwspomniano, git commit --amend jest sposobem na nadpisanie ostatniego zatwierdzenia. Jedna uwaga: jeśli chcesz również nadpisać pliki, polecenie będzie
git commit -a --amend -m "Mój nowy komunikat dotyczący zatwierdzenia"
|
Możesz także użyć do tego git filter-branch.
git filter-branch -f --msg-filter "sed 's / errror / error /'" $ flawed_commit..HEAD
Nie jest to tak proste, jak trywialne zatwierdzenie git - popraw, ale jest szczególnie przydatne, jeśli masz już jakieś scalenia po błędnym komunikacie o zatwierdzeniu.
Zauważ, że spróbuje to przepisać każde zatwierdzenie między HEAD a wadliwym zatwierdzeniem, więc powinieneś bardzo mądrze wybrać polecenie msg-filter ;-)
|
Wolę ten sposób:
git commit --amend -c 
W przeciwnym razie pojawi się nowe zatwierdzenie z nowym identyfikatorem zatwierdzenia.
|
Jeśli używasz narzędzia Git GUI, dostępny jest przycisk o nazwie Zmień ostatnie zatwierdzenie. Kliknij ten przycisk, a wyświetli się ostatnie pliki zatwierdzeń i komunikat. Po prostu edytuj tę wiadomość i możesz ją zatwierdzić nową wiadomością dotyczącą zatwierdzenia.
Lub użyj tego polecenia z konsoli / terminala:
git commit -a --amend -m "Mój nowy komunikat dotyczący zatwierdzenia"
|
Możesz użyć ponownego bazowania Git. Na przykład, jeśli chcesz zmodyfikować ponownie, aby zatwierdzić bbc643cd, uruchom
$ git rebase bbc643cd ^ --interactive
W domyślnym edytorze zmień „wybierz” na „edytuj” w wierszu, którego zatwierdzenie chcesz zmodyfikować. Wprowadź zmiany, a następnie wprowadź je za pomocą
$ git add 
Teraz możesz użyć
$ git commit --amend
aby zmodyfikować zatwierdzenie, a potem
$ git rebase --continue
aby powrócić do poprzedniego zatwierdzenia head.
|
Jeśli chcesz zmodyfikować tylko ostatni komunikat dotyczący zmiany, wykonaj:
git commit --amend
Spowoduje to przeniesienie Cię do edytora tekstu i zmianę ostatniego komunikatu o zatwierdzeniu.
Jeśli chcesz zmienić ostatnie trzy komunikaty o zatwierdzeniach lub którykolwiek z komunikatów o zatwierdzeniach do tego momentu, wpisz HEAD ~ 3 do polecenia git rebase -i:
git rebase -i HEAD ~ 3
|
Jeśli musisz zmienić stary komunikat dotyczący zatwierdzenia w wielu gałęziach (tj. Zatwierdzenie z błędną wiadomością jest obecne w wielu gałęziach), możesz użyć:
git filter-branch -f --msg-filter \
'sed "s /  /  / g"' - --all
Git utworzy katalog tymczasowy do przepisania i dodatkowo zarchiwizuje stare referencje w refs / original /.
-f wymusi wykonanie operacji. Jest to konieczne, jeśli katalog tymczasowy już istnieje lub jeśli istnieją już odniesienia zapisane w refs / original. Jeśli tak nie jest, możesz usunąć tę flagę.
- oddziela opcje gałęzi filtra od opcji rewizji.
--all upewni się, że wszystkie gałęzie i tagi zostały przepisane.
Ze względu na kopię zapasową starych odniesień można łatwo wrócić do stanu sprzed wykonania polecenia.
Powiedzmy, że chcesz odzyskać swojego mistrza i uzyskać do niego dostęp w oddziale old_master:
git checkout -b old_master refs / original / refs / heads / master
|
Posługiwać się
git commit --amend
Aby dokładnie to zrozumieć, doskonały post to 4. Przepisanie historii Git. Mówi również o tym, kiedy nie używać git commit --amend.
|
Jeśli to twoje ostatnie zatwierdzenie, po prostu zmień zmianę:
git commit --amend -o -m "Nowa wiadomość o zatwierdzeniu"
(Użycie flagi -o (--only), aby upewnić się, że zmienisz tylko komunikat o zatwierdzeniu)
Jeśli jest to zakopane zatwierdzenie, użyj niesamowitej interaktywnej rebase:
git rebase -i @ ~ 9 # Pokaż ostatnie 9 zatwierdzeń w edytorze tekstu
Znajdź żądaną zmianę, zmień pick na r (przeredaguj), zapisz i zamknij plik. Gotowe!
Miniaturowy tutorial Vima (lub jak zmienić bazę za pomocą tylko 8 naciśnięć klawiszy 3jcwrEscZZ):
Uruchom vimtutor, jeśli masz czas
hjkl odpowiadają klawiszom ruchu ← ↓ ↑ →
Wszystkie polecenia mogą być poprzedzone „zakresem”, np. 3j przesuwa się o trzy linie w dół
i przejść do trybu wstawiania - wpisany tekst pojawi się w pliku
ESC Ctrlc do wyjścia trybie wstawiania i powrót na tryb „normalny”
u cofnąć
Ctrlr, aby ponowić
dd, dw, dl, aby usunąć odpowiednio wiersz, słowo lub literę
cc, cw, cl, aby odpowiednio zmienić wiersz, słowo lub literę (tak samo jak ddi)
yy, yw, yl, aby skopiować („yank”) odpowiednio wiersz, słowo lub literę
p lub P, aby wkleić odpowiednio za lub przed bieżącą pozycją
: wEnter, aby zapisać (zapisać) plik
: q! Enter, aby wyjść bez zapisywania
: wqEnter lub ZZ, aby zapisać i wyjść
Jeśli dużo edytujesz tekst, przełącz się na układ klawiatury Dvoraka, naucz się pisać dotykiem i naucz się Vima. Czy to jest warte wysiłku? Tak.
ProTip ™: Nie bój się eksperymentować z „niebezpiecznymi” poleceniami, które przepisują historię * - Git domyślnie nie usuwa twoich zatwierdzeń przez 90 dni; można je znaleźć w reflogu:
$ Git resetowania @ ~ 3 # Wróć trzy commity
$ git reflog
c4f708b HEAD @ {0}: reset: przejście do @ ~ 3
2c52489 HEAD @ {1}: zatwierdzenie: więcej zmian
4a5246d HEAD @ {2}: commit: dokonaj ważnych zmian
e8571e4 HEAD @ {3}: commit: dokonaj pewnych zmian
... wcześniejsze zatwierdzenia ...
$ git reset 2c52489
... i jesteś z powrotem tam, gdzie zacząłeś
* Uważaj jednak na opcje takie jak - hard i --force - mogą one jednak odrzucać dane.
* Ponadto nie przepisuj historii w żadnej gałęzi, nad którą współpracujesz.
|
Modyfikować
Masz kilkaopcje tutaj. Możesz to zrobić
git commit --amend
o ile jest to twoje ostatnie zatwierdzenie.
Interaktywna rebase
W przeciwnym razie, jeśli nie jest to twoje ostatnie zatwierdzenie, możesz wykonać interaktywną rebase,
git rebase -i [branched_from] [hash przed zatwierdzeniem]
Następnie w interaktywnym rebase po prostu dodajesz edit do tego zatwierdzenia. Kiedy się pojawi, wykonaj polecenie git - popraw i zmodyfikuj komunikat o zatwierdzeniu. Jeśli chcesz cofnąć zmiany przed tym punktem zatwierdzenia, możesz również użyć git reflog i po prostu usunąć to zatwierdzenie. Następnie po prostu ponownie wykonaj polecenie git.
|
Jeśli używasz GUI Git, możesz zmienić ostatnie zatwierdzenie, które nie zostało wysłane:
Zatwierdź / Zmień ostatnie zatwierdzenie
|
Używam GUI Git tak często, jak mogę, a to daje Ci możliwość zmiany ostatniego zatwierdzenia:
Ponadto, git rebase -i origin / master to fajna mantra, która zawsze będzie przedstawiać zatwierdzenia, które wykonałeś na górze mastera i daje możliwość poprawiania, usuwania, zmiany kolejności lub zgniatania. Nie ma potrzeby, aby najpierw zdobyć ten hash.
|
Wow, więc jest na to wiele sposobów.
Jeszcze innym sposobem jest usunięcie ostatniego zatwierdzenia, ale zachowaj jego zmiany, aby nie stracić swojej pracy. Następnie możesz wykonać kolejne zatwierdzenie z poprawioną wiadomością. Wyglądałoby to mniej więcej tak:
reset git - soft HEAD ~ 1
git commit -m 'Nowy i poprawiony komunikat o zatwierdzeniu'
Robię to zawsze, gdy zapomnę dodać plik lub zmienić.
Pamiętaj, aby określić --soft zamiast --hard, w przeciwnym razie całkowicie stracisz to zatwierdzenie.
|
Dla każdego, kto szuka GUI dla Windows / Mac do pomocy w edytowaniu starszych wiadomości (tj. Nie tylko najnowszych wiadomości), polecam Sourcetree. Kroki, które należy wykonać, znajdują się poniżej obrazu.
W przypadku zatwierdzeń, które nie zostały jeszcze przesłane do pilota:
Upewnij się, że wszystkie bieżące zmiany zostały zatwierdzone lub schowane (tj. Aby na karcie „Stan pliku” nie było żadnych plików) - w przeciwnym razie nie będzie działać.
Na karcie „Dziennik / Historia” kliknij prawym przyciskiem myszy wpis z przylegającą linią na wykresie, jedną poniżej zmian, które chcesz edytować, i wybierz opcję „Przebuduj elementy potomne  interaktywnie ...”
Wybierz cały wiersz wiadomości, którą chcesz zmienić (kliknij kolumnę „Wiadomość”).
Kliknij przycisk „Edytuj wiadomość”.
Edytuj wiadomość zgodnie z potrzebami w wyświetlonym oknie dialogowym, a następnie kliknij OK.
Powtórz kroki 3-4, jeśli są inne komunikaty dotyczące zatwierdzenia do zmiany.
Kliknij OK: rozpocznie się ponowny rozruch. Jeśli wszystko jest w porządku, wyjście zakończy się „Zakończono pomyślnie”. UWAGA: Czasami widziałem, jak to się nie udaje, ponieważ nie można utworzyć „ścieżki_projektu / .git / index.lock”: Plik istnieje. gdy próbujesz modyfikować wiele komunikatów o zatwierdzeniach w tym samym czasie. Nie jestem pewien, na czym dokładnie polega problem lub czy zostanie on naprawiony w przyszłej wersji Sourcetree, ale jeśli tak się stanie, zaleciłbym zmianę bazy pojedynczo (wolniej, ale wydaje się bardziej niezawodna).
... Lub ... dla zatwierdzonych już zatwierdzeń:
Postępuj zgodnie z instrukcjami w tej odpowiedzi, które są podobne do powyższych, ale wymagają wykonania kolejnego polecenia z wiersza poleceń (git push origin  -f), aby wymusić wypchnięcie gałęzi. Polecam przeczytać to wszystko i zachować niezbędną ostrożność!
|
Jeśli chcesz tylko edytować najnowsze zatwierdzenie, użyj:
git commit --amend
lub
git commit --amend -m 'komunikat w jednej linii'
Ale jeśli chcesz edytować kilka zatwierdzeń z rzędu, powinieneś zamiast tego użyć zmiany bazy:
git rebase -i 
W pliku, takim jak powyższy, napisz edit / e lub jedną z innych opcji, a następnie naciśnij Zapisz i wyjdź.
Teraz będziesz przy pierwszym złym zatwierdzeniu. Wprowadź zmiany w plikach, a zostaną one automatycznie przygotowane. Rodzaj
git commit --amend
Zapisz, wyjdź i wpisz
git rebase --continue
aby przejść do następnego wyboru, aż do zakończenia wszystkich wybranych opcji.
Zauważ, że te rzeczy zmieniają wszystkie twoje skróty SHA po tym konkretnym zatwierdzeniu.
|
Jeśli chcesz zmienić tylko ostatnią wiadomość, powinieneś użyć flagi --only lub jej skrótu -o z zatwierdzeniem --amend:
git commit --amend -o -m "Nowa wiadomość o zatwierdzeniu"
Gwarantuje to, że przypadkowo nie wzmocnisz swojego zaangażowania za pomocą inscenizacji. Oczywiście najlepiej mieć odpowiednią konfigurację $ EDITOR. Następnie możesz pozostawić opcję -m, a Git wstępnie wypełni treść komunikatu o zmianach. W ten sposób można go łatwo edytować.
|
Zaktualizuj swój ostatni błędny komunikat o zatwierdzeniu nowym komunikatem o zatwierdzeniu w jednej linii:
git commit --amend -m "twoja nowa wiadomość do zatwierdzenia"
Lub spróbuj zresetować Git, jak poniżej:
# Możesz zresetować swoją głowę do n liczby zatwierdzeń
# NIE jest dobrym pomysłem na zmianę ostatniego komunikatu o zatwierdzeniu,
# ale możesz wpaść na pomysł podzielenia zatwierdzenia na wiele zatwierdzeń
reset git - soft HEAD ^
# To zresetuje twoje ostatnie zatwierdzenie. Teraz ty
# może ponownie zatwierdzić go nowym komunikatem o zatwierdzeniu.
Używanie resetowania do dzielenia zatwierdzeń na mniejsze zatwierdzenia
git reset może pomóc w podzieleniu jednego zatwierdzenia na wiele zatwierdzeń:
# Zresetuj głowę. Resetuję do ostatnich zatwierdzeń:
reset git - soft HEAD ^
# (Możesz zresetować wiele zatwierdzeń, wykonując HEAD ~ 2 (liczba zatwierdzeń)
# Teraz zresetuj głowę dladzielenie go na wiele zatwierdzeń
git reset HEAD
# Dodaj i zatwierdź swoje pliki osobno, aby wykonać wiele zatwierdzeń: np
git add app /
git commit -m "dodaj wszystkie pliki w katalogu aplikacji"
git add config /
git commit -m "dodaj wszystkie pliki w katalogu konfiguracyjnym"
Tutaj z powodzeniem podzieliłeś ostatnie zatwierdzenie na dwa zatwierdzenia.
|
Na to pytanie jest wiele odpowiedzi, ale żadna z nich nie wyjaśnia szczegółowo, jak zmienić starsze komunikaty o zmianach za pomocą Vima. Utknąłem, próbując zrobić to sam, więc tutaj opiszę szczegółowo, jak to zrobiłem, szczególnie dla osób, które nie mają doświadczenia w Vimie!
Chciałem zmienić pięć moich ostatnich zatwierdzeń, które już wysłałem na serwer. Jest to dość „niebezpieczne”, ponieważ jeśli ktoś już z tego skorzystał, możesz zepsuć sytuację, zmieniając komunikaty dotyczące zmian. Jeśli jednak pracujesz nad własną małą gałęzią i jesteś pewien, że nikt jej nie ciągnął, możesz to zmienić w ten sposób:
Powiedzmy, że chcesz zmienić pięć ostatnich zatwierdzeń, a następnie wpisujesz to w terminalu:
git rebase -i HEAD ~ 5
* Gdzie 5 to liczba komunikatów, które chcesz zmienić (więc jeśli chcesz zmienić od dziesiątego do ostatniego, wpisz 10).
To polecenie przeniesie Cię do Vima, gdzie możesz „edytować” swoją historię zmian. U góry zobaczysz pięć ostatnich zatwierdzeń:
pick  komunikat o zatwierdzeniu
Zamiast wybierać, musisz napisać przeformułowanie. Możesz to zrobić w Vimie, wpisując i. To sprawia, że ​​wchodzisz w tryb wstawiania. (Zobaczysz, że jesteś w trybie wstawiania po słowie INSERT na dole.) W przypadku zatwierdzeń, które chcesz zmienić, zamiast wybierania wpisz przeredagowanie.
Następnie musisz zapisać i zamknąć ten ekran. Robisz to, przechodząc najpierw do „trybu poleceń”, naciskając klawisz Esc (możesz sprawdzić, czy jesteś w trybie poleceń, jeśli słowo INSERT na dole zniknęło). Następnie możesz wpisać polecenie, wpisując:. Polecenie zapisu i wyjścia to wq. Więc jeśli wpiszesz: wq, jesteś na dobrej drodze.
Następnie Vim przejrzy każdą wiadomość o zatwierdzeniu, którą chcesz przeredagować, i tutaj możesz faktycznie zmienić wiadomości o zatwierdzeniu. Zrobisz to, przechodząc do trybu wstawiania, zmieniając treść komunikatu, przechodząc do trybu poleceń oraz zapisując i kończąc. Zrób to pięć razy i wypadniesz z Vima!
Następnie, jeśli już wepchnąłeś swoje złe zatwierdzenia, musisz użyć polecenia git push --force, aby je nadpisać. Pamiętaj, że git push --force jest dość niebezpieczną rzeczą do zrobienia, więc upewnij się, że nikt nie ściągał z serwera, odkąd wypchnąłeś swoje złe zatwierdzenia!
Teraz zmieniłeś swoje wiadomości dotyczące zmian!
(Jak widzisz, nie mam takiego doświadczenia w Vimie, więc jeśli użyłem niewłaściwego `` żargonu '' do wyjaśnienia, co się dzieje, nie krępuj się mnie poprawić!)
|
Możesz użyć git-rebase-reword
Jest przeznaczony do edycji każdego zatwierdzenia (nie tylko ostatniego) w taki sam sposób, jak commit --amend
$ git rebase-reword 
Jego nazwa pochodzi od działania na rebase Interactive, które ma na celu zmianę zatwierdzenia: „reword”. Zobacz ten post i tryb interaktywny sekcji man-
Przykłady:
$ git rebase-reword b68f560
$ git rebase-reword HEAD ^
|
Dodałem aliasy reci i polecam go ponownie (popraw). Teraz mogę to zrobić za pomocą git recm lub git recm -m:
$ vim ~ / .gitconfig
[Alias]
......
cm = zatwierdzić
reci = commit --amend
recm = commit --amend
......
|
Zrozumiałem, że nacisnąłem zatwierdzenie z literówką. Aby cofnąć, wykonałem następujące czynności:
git commit --amend -m "T-1000, zaawansowany prototyp"
git push --force
Ostrzeżenie: wymuszenie wypchnięcia zmian spowoduje nadpisanie gałęzi zdalnej lokalną. Upewnij się, że nie będziesz nadpisywać niczego, co chcesz zachować. Zachowaj również ostrożność przy wymuszaniu wypychania zmienionego (przepisanego) zatwierdzenia, jeśli ktoś inny podzieli się z tobą tą gałęzią, ponieważ będzie musiał przepisać własną historię, jeśli ma starą kopię zatwierdzenia, który właśnie przepisałeś.
|
Lubię używać następujących:
status git
git add --all
git commit -am "tu pojawia się wiadomość o zmianie"
git pull 
git push 
|
Jeśli nie przesłałeś kodu do swojej zdalnej gałęzi (GitHub / Bitbucket), możesz zmienić komunikat o zatwierdzeniu w wierszu poleceń, jak poniżej.
git commit --amend -m "Twoja nowa wiadomość"
Jeśli pracujesz w konkretnej branży, zrób to:
git commit --amend -m "BRANCH-NAME: nowa wiadomość"
Jeśli podałeś już kod z niewłaściwą wiadomością i musisz zachować ostrożność podczas zmiany wiadomości. Oznacza to, że po zmianie komunikatu o zatwierdzeniu i ponownej próbie wypchnięcia go ponownie wystąpią problemy. Aby było gładko, wykonaj następujące kroki.
Przeczytaj całą moją odpowiedź, zanim to zrobisz.
git commit --amend -m "BRANCH-NAME: twoja nowa wiadomość"
git push -f origin NAZWA-ODDZIAŁU # Nie jest to najlepsza praktyka. Przeczytaj poniżej, dlaczego?
Ważna uwaga: Bezpośrednie użycie wymuszonego wypychania może spowodować problemy z kodem, nad którymi pracują inni programiści w tej samej gałęzi. Aby uniknąć tych konfliktów, musisz wyciągnąć kod z gałęzi przed użyciem siłyPchać:
git commit --amend -m "BRANCH-NAME: twoja nowa wiadomość"
git pull origin NAZWA-BRANŻU
git push -f origin NAZWA-ODDZIAŁU
Jest to najlepsza praktyka podczas zmiany komunikatu o zmianach, jeśli został on już przekazany.
|
Nie szukasz odpowiedzi? Przeglądaj inne pytania oznaczone tagiem git git-commit git-rewrite-history popraw lub zadaj własne pytanie.